#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//#include <math.h>
//#include <string.h>
////
//int isPrime(int a)
//{
//	if (a == 1)
//		return 0;
//
//	if (a <= 3)
//		return 1;
//
//	for (int i = 2; i <= sqrt(a); i++)
//	{
//		if (a % i == 0)
//			return 0;
//	}
//
//	return 1;
//}
//
//int main()
//{
//	int left = 0;
//	int right = 0;
//	scanf("%d %d", &left, &right);
//
//	int arr[168] = { 0 };
//	int det = 0;
//	for (int i = left; i <= right; i++)
//	{
//		if (isPrime(i))
//			arr[det++] = i;
//	}
//
//	if (det < 3)
//	{
//		printf("0");
//		return 0;
//	}
//
//	int count = 0;
//
//	for (int i = 0; i < det - 2; i++)
//	{
//		for (int j = i + 1; j < det - 1; j++)
//		{
//			for (int k = j + 1; k < det; k++)
//			{
//				if (isPrime(arr[i] * arr[j] + arr[k]) &&
//					isPrime(arr[j] * arr[k] + arr[i]) &&
//					isPrime(arr[i] * arr[k] + arr[j]))
//					count++;
//			}
//		}
//	}
//
//	printf("%d", count);
//	return 0;
//}

//int main()
//{
//	char arr[50] = { 0 };
//	memset(arr, 'x', 5);
//	int i = 0;
//	return 0;
//}

//#include <stdio.h>
//#include <string.h>

//int main()
//{
//	char arr[50] = { 0 };
//	memset(arr, 'x', 45);
//	scanf("%s", arr);
//
//	char *pre = &arr[0];
//	char *lat = pre;
//
//	while (*lat != 'x')
//	{
//		if (*lat >= '0' && *lat <= '9')
//		{
//			while ((*lat >= '0' && *lat <= '9') || *lat == '.')
//			{
//				lat++;
//			}
//
//			while (pre != lat)
//			{
//				printf("%c", *pre);
//				pre++;
//			}
//			printf("\n");
//
//		}
//		else
//		{
//			if (((*lat == '-' || *lat == '+') && *lat == arr[0]) ||
//				((*lat == '-' || *lat == '+') && *(lat - 1) == '('))
//			{
//				printf("%c", *lat);
//				lat++;
//				pre++;
//				while ((*lat >= '0' && *lat <= '9') || *lat == '.')
//				{
//					lat++;
//				}
//
//				while (pre != lat)
//				{
//					printf("%c", *pre);
//					pre++;
//				}
//				printf("\n");
//			}
//			else
//			{
//				printf("%c\n", *lat);
//
//				lat++;
//				pre = lat;
//			}
//		}
//	}
//
//	return 0;
//}

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#define N 100

int Find_maximum_factor(int n);
int Find_numbers(char a[]);

int Find_maximum_factor(int n)
{
	int list[N];
	int i, j, max;
	j = 0;
	for (i = 1; i <= n; i++)
	{
		if (n%i == 0)
		{
			list[j] = i;
			j = j + 1;
		}
	}
	max = list[0];
	for (j = 0; j<N; j++)
	{
		if (max<list[j])
		{
			max = list[j];
		}
	}
	return(max);
}

int Find_numbers(char a[])
{
	int i, j, k, n, m, tmp;
	n = strlen(a);
	char b[N] = "\0";
	j = 0;
	for (i = 0; i<n; i++)
	{
		if (a[i] >= '0' || a[i] <= '9')
		{
			b[j] = a[i];
			j = j + 1;
		}
	}
	m = atoi(b);
	return(m);
}


int main()
{
	char string[N] = { 0 };
	int i, j, n, m[N];
	int maximum, number;

	scanf("%d", &n);
	j = 0;
	for (i = 0; i<n; i++)
	{
		gets(string);
		number = Find_numbers(string);
		maximum = Find_maximum_factor(number);
		m[j] = maximum;
		j++;
	}
	for (i = 0; i<j; i++)
	{
		printf("%d\n", m[i]);
	}
	return 0;
}

